package T15;
//自定义异常类NoAgeException，定义Person类，包含name与age两个成员变量。
//在Person类的有参数构造方法中，进行年龄范围的判断，
//若年龄为负数或大于200岁，则抛出NoAgeException异常，异常提示信息“年龄数值非法”。
//具体步骤如下：
//（1）自定义异常类NoAgeException ，在该类定义一个无参构造方法和一个带String参数的构造方法；
//（2）定义Person类，在该类中定义成员变量：
//    姓名（private String name）和年龄（private int  age），定义带参构造方法，
//    并在方法中加入逻辑判断，若age<0或age>200，则向外抛出异常：
//    throw new NoAgeException(age+",年龄数值非法")，最后，重写父类的toString()方法显示Person对象的姓名和年龄信息；
//（3）定义测试类Test06，
//    通过Person类的带参构造方法创建一个Person对象p，先传一个age年龄225，执行结果如图所示；再将age修改成25，
public class Test06 {
    public static void main(String[] args) {

        Person person = null;
        try {
//            person=new Person("郭麒麟",225);
            person = new Person("郭麒麟",25);
            System.out.println(person);
        } catch (NoAgeException e) {
            System.out.println(e.getMessage());
        }

        System.out.println("over");
    }
}
class NoAgeException extends Exception {
    public NoAgeException() {
        super();
    }
    public NoAgeException(String x) {
        super(x);
    }
}
class Person{
    private String name;
    private int age;

    @Override
    public String toString() {
        return "Person[" +
                "name='" + name  +
                ", age=" + age +
                ']';
    }

    public Person(String name, int age) throws NoAgeException {
        this.name = name;
        this.age = age;
            if (age<0||age>200) {
                throw new NoAgeException(age + ",年龄数值非法");
            }
    }
}


